package com.example.service;

import com.example.pojo.Account;
import com.example.pojo.LoginResponse;
import com.example.pojo.User;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface UserService {
    /**
     * 查询所有用户
     * @return
     */
    List<User> selectAll(User user);

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    User selectById(Integer id);

    /**
     * 分页查询
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<User> selectPage(User user, Integer pageNum, Integer pageSize);

    /**
     * 添加用户
     * @param user
     */
    void add(User user);

    /**
     * 修改用户
     * @param user
     */
    void updateById(User user);

    /**
     * 删除
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 批量删除数据
     * @param ids
     */
    void deleteBatch(List<Integer> ids);

    /**
     * 登录
     * @param account
     */
    LoginResponse login(Account account);

    /**
     * 注册
     */
    void register(User user);

    /**
     * 修改密码
     * @param account
     */
    void updatePassword(Account account,String token);

    User selectByUsername(String username);
}
